Component({
    behaviors: ['wx://form-field'],
    externalClasses: ['v-input-class'],
    /**
     * 组件的属性列表
     */
    properties: {
        //搜索icon
        inputIcon: {
            type: String,
            value: './Img/search.png'
        },

        //是否禁用input
        disabled: {
            type: Boolean,
            value: false
        },
        //占位符
        placeholder: {
            type: String,
            value: '请输入搜索关键词'
        },

        //输入最大长度
        maxlength: {
            type: Number,
            value: 140
        },

        //input属性
        type: {
            type: String,
            value: 'text'
        },

        //值
        value: String,

        //消息
        message: {
            type: String,
            value: '请输入完整内容'
        },
    },
    /**
     * 组件的初始数据
     */
    data: {},

    /**
     * 组件的方法列表
     */
    methods: {
        //键盘输入时触发
        handleInputChange(e) {
            let detail = {
                value: e.detail.value
            }
            this.setData({
                value: detail.value
            });
            this.triggerEvent('input', detail); //triggerEvent：调用组件使用时或许要用的方法
        },

        //输入框聚焦时触发
        handleInputFocus(e) {
            this.triggerEvent('focus', e.detail); //triggerEvent：调用组件使用时或许要用的方法
        },
        //输入框失去焦点时触发
        handleInputBlur(e) {
            let detail = {
                value: e.detail.value
            }
            if (this.data.required) {
                if (this.checkValueRequired(detail.value)) {
                    this.setData({
                        value: detail.value
                    });
                }
            }
            this.triggerEvent('blur', detail); //triggerEvent：调用组件使用时或许要用的方法
        },

        //点击完成按钮时触发
        handleInputConfirm(e) {
            var value = e.detail.value;
            var detail = {
                value: value
            }
            this.triggerEvent('search', detail); //triggerEvent：调用组件使用时或许要用的方法
        },

        //清空input
        handleClearTap() {
            let detail = {
                value: ''
            }
            this.setData({
                value: '',
            })
            this.triggerEvent('clear', detail);
        },

        //输入错误时触发
        checkValueRequired() {
            if (!!this.data.value && this.data.value !== "") {
                return true
            } else {
                this._showToast(this.data.message)
                return false
            }
        },

        _showToast(message, icon = 'none') {
            wx.showToast({
                title: message,
                icon: icon
            })
        }
    }
})